package br.gov.mi.corporativo.dominio.boundary.rhmi.funcionarioafastamento;

import java.util.Date;
import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

import br.gov.mi.corporativo.dominio.entidade.rhmi.FuncionarioAfastamento;

@WebService
public interface FuncionarioAfastamentoEndPoint {
	
	@WebMethod(operationName="listarTodosAfastamentosFuncionarios")
	public @WebResult(name="listaFuncionarioAfastamento") List<FuncionarioAfastamento> recuperarTodos();
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorIdFuncionarioAfastamento")
	public @WebResult(name="funcionarioAfastamento")FuncionarioAfastamento recuperarPorIdFuncionarioAfastamento(
		   @WebParam(name="idFuncionarioAfastamento")Long idFuncionarioAfastamento);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorFuncionario")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorFuncionario(
		@WebParam(name="funcionario")Long funcionario);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorTipoAfastamento")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorTipoAfastamento(
		@WebParam(name="tipoAfastamento")Long tipoAfastamento);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorFuncionarioCargo")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorFuncionarioCargo(
		@WebParam(name="funcionarioCargo")Long funcionarioCargo);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorDtInicio")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorDtInicio(
		@WebParam(name="dtInicio")Date dtInicio);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorDtTermino")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorDtTermino(
		@WebParam(name="dtTermino")Date dtTermino);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorStVencimento")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorStVencimento(
		@WebParam(name="stVencimento")String stVencimento);
	
	@WebMethod(operationName="recuperarFuncionarioAfastamentoPorStRegistro")
	public @WebResult(name="listaFncionarioAfastamento")List<FuncionarioAfastamento> recuperarPorStRegistro(
		@WebParam(name="stRegistro")String stRegistro);
	
	
}
